package com.draemoncode.weixindb.websocket;

import lombok.extern.slf4j.Slf4j;

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;

@ServerEndpoint(value = "/websocket")
@Slf4j
public class AppWebSocket {

    /**
     * 连接建立成功调用的方法*/
    @OnOpen
    public void onOpen(Session session) {
        UISession.setSession(session);
        log.info("websocket UI连接建立");
    }

    /**
     * 连接关闭调用的方法
     */
    @OnClose
    public void onClose() {
        log.info("websocket UI连接断开");
    }

    /**
     * 收到客户端消息后调用的方法
     *
     * @param message 客户端发送过来的消息*/
    @OnMessage
    public void onMessage(String message, Session session) {
        log.info("websocket拒绝一切UI消息:" + message);

    }

    @OnError
    public void onError(Throwable throwable, Session session) {
        if (throwable.getMessage().contains("The client aborted the connection")){
            log.info("UI连接关闭");
        }else{
            log.error(throwable.getMessage(), throwable);
        }

    }

}
